
import { defineStore } from 'pinia'
import { getLocalToken, setLocalToken,removeLocalToken} from '@/utils/auth'
import { ref } from 'vue'
import type { Profile } from '@/types/user'
import type { RouteRecordRaw } from 'vue-router'
import { routes } from '@/router'

// defineStore 函数，用于定义一个新的 store。
// ref 函数，用来创建响应式的变量。
export const useUserStore = defineStore('hm-user', () => {
    // 优先从本地取
    const token = ref(getLocalToken() || '') 
    const profile=ref<Profile>({}as Profile)
    const setProfile=(p:Profile)=>{
    profile.value=p
    }


    const setToken = (t: string)=>{
      token.value = t
      // 本地存一份
      setLocalToken(t)
    }
    // 清除用户信息
  const clearUserInfo=()=>{
    token.value=''
     // 从本地存储中移除 token
     removeLocalToken()
  }
    return { token, setToken ,clearUserInfo,profile,setProfile}
})
// export const useMenuStore = defineStore("hm-menu", () => {
//   const menuList = ref<RouteRecordRaw[]>([...routes])
//   const setMenuList = (filterRoutes: RouteRecordRaw[]) => {
//     menuList.value = [...menuList.value, ...filterRoutes]
//   };
//   return { menuList, setMenuList };
// });